package com.ys.mapper.business;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface CommonMapper {

    public List<Map<String, Object>> searchMap(@Param("sqlStr") String sqlStr);

    public List<Map<String, Object>> searchOfXmSelect(
    		@Param("fieldTitle") String fieldTitle,
    		@Param("fieldValue") String fieldValue,
    		@Param("tableName") String tableName,
    		@Param("orderby") String orderby,
    		@Param("start") Integer start,
    		@Param("pageSize") Integer pageSize,
    		@Param("text") String text);

    public Integer countOfXmSelect(
    		@Param("fieldTitle") String fieldTitle,
    		@Param("tableName") String tableName,
    		@Param("text") String text);

    public List<Map<String, Object>> list(@Param("sqlStr") String sqlStr);

	/**
	 * 统计数量
	 * @param sql
	 */
	public Integer countInteger(@Param("sql") String sql);

	/**
	 * 统计数量
	 * @param sql
	 */
	public Long countLong(@Param("sql") String sql);

	/**
	 * 求和
	 * @param sql
	 * @return
	 */
	public BigDecimal sumBigDecimal(@Param("sql") String sql);

	/**
	 * 通过Map更新
	 * @param paramMap
	 */
	public Integer updateByMap(@Param("paramMap") Map<String, String> paramMap, @Param("tableName") String tableName, @Param("id") Long id);

	/**
	 * 通过sql更新
	 * @param sql
	 */
	public Integer updateBySql(@Param("sql") String sql);

	/**
	 * 取字符串
	 * @param sql
	 * @return
	 */
	public String getString(@Param("sql") String sql);
}